Data processing infrastructures implementing service frameworks (such as the “Service Oriented Architecture, or SOA”) have become increasingly popular in the last years. Generally speaking, a service consists of a stand-alone basic task; the service may be invoked through a well-defined interface, which is independent of its underlying implementation. This promotes the reuse and the interconnection of the services (even among different platforms).
Particularly, the services can be combined into composite applications for whatever use. Each application so obtained is very efficient; indeed, the application may exploit different techniques, each one optimized for a specific function. Moreover, this architecture strongly increases the flexibility of the resulting application. For example, it is possible to change the implementation of any service with no impact on the whole application; on the other hand, the application can be readily expanded with new functionalities as soon as the corresponding services are available.
All of the above strongly reduces the development costs of the applications. Particularly, this allows creating dynamic applications, which facilitate a quick response to changing market conditions in a cost effective way. Moreover, this drives the development focus towards activities and interactions, thereby acting as a unifying force between business and applications; as a result, it is possible to obtain applications that are optimized to support the actual business requirements.
However, the extreme flexibility and dynamism of the services do not allow implementing an efficient mechanism for metering their usage. Indeed, the licensing applications known in the art for metering the usage of software products—such as the “IBM Tivoli License Manager (ITLM)” by IBM Corporation—are specifically designed for working in a close environment within a company. More specifically, the available licensing applications can only detect the running of well-defined software products on specific computers; conversely, no licensing application available on the market can be used in an open environment to control the invocation and the running of services, whose operations may be performed by different entities in a number of ways that are not known “a priori”.
This problem is particularly acute when the services are offered to clients, so as to enable them to access applications remotely. In this scenario, it is of the utmost importance to control the actual running of the services. For example, this is necessary to ensure the appropriate usage of the services (according to applicable conditions of use). Moreover, this is a prerequisite for allowing charging the correct licensing fees to the clients for their actual usage of the services.
Particularly, it is not possible to ensure compliance with the licenses that are available to the clients; a further risk for the clients if of incurring extra-costs that are not planned.
Therefore, the above-mentioned limitations hinder the widespread diffusion of service-based solutions.